<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

class pessoa extends ADM_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('strings_helper');
        $this->load->language('pessoa/pessoa_cadastro');
        $this->load->model('pessoa/pessoa_model');
        $this->checar_metodo(uri_string());
   }

    public function cadastrar() {
        $v_dados = array();

        $v_dados['title_acao'] = $this->lang->line('title_acao_cadastrar');
        $v_dados['title_entrega'] = $this->lang->line('title_acao_entrega');
        $v_dados['id'] = '';
        $v_dados['status'] = form_dropdown('status', $this->_status(), array(), 'required="required"');
        $v_dados['referencia'] = '';
        $v_dados['nome'] = '';
        $v_dados['data'] = '';
        $v_dados['cpf'] = '';
        $v_dados['email'] = '';
        $v_dados['pais'] = '';
        $v_dados['cep'] = '';
        $v_dados['logradouro'] = '';
        $v_dados['endereco'] = '';
        $v_dados['numero'] = '';
        $v_dados['complemento'] = '';
        $v_dados['bairro'] = '';
        $v_dados['cidade'] = '';
        $v_dados['estado'] = '';
        $v_dados['pais_entrega'] = '';
        $v_dados['cep_entrega'] = '';
        $v_dados['logradouro_entrega'] = '';
        $v_dados['endereco_entrega'] = '';
        $v_dados['numero_entrega'] = '';
        $v_dados['complemento_entrega'] = '';
        $v_dados['bairro_entrega'] = '';
        $v_dados['cidade_entrega'] = '';
        $v_dados['uf_entrega'] = '';

        $v_dados['place_referencia'] = "placeholder='" . $this->lang->line('lang_referencia') . "'";
        $v_dados['place_nascimento'] = "placeholder='" . $this->lang->line('lang_nascimento') . "'";
        $v_dados['place_cpf'] = "placeholder='" . $this->lang->line('lang_cpf') . "'";
        $v_dados['place_email'] = "placeholder='" . $this->lang->line('lang_email') . "'";
        $v_dados['place_telefone'] = "placeholder='" . $this->lang->line('lang_telefone') . "'";
        $v_dados['place_pais'] = "placeholder='" . $this->lang->line('lang_pais') . "'";
        $v_dados['place_cep'] = "placeholder='" . $this->lang->line('lang_cep') . "'";
        $v_dados['place_logradouro'] = "placeholder='" . $this->lang->line('lang_logradouro') . "'";
        $v_dados['place_endereco'] = "placeholder='" . $this->lang->line('lang_endereco') . "'";
        $v_dados['place_numero'] = "placeholder='" . $this->lang->line('lang_numero') . "'";
        $v_dados['place_complemento'] = "placeholder='" . $this->lang->line('lang_complemento') . "'";
        $v_dados['place_bairro'] = "placeholder='" . $this->lang->line('lang_bairro') . "'";
        $v_dados['place_cidade'] = "placeholder='" . $this->lang->line('lang_cidade') . "'";
        $v_dados['place_uf'] = "placeholder='" . $this->lang->line('lang_uf') . "'";

        //datepicker
        //$v_dados['prox'] = "";


        $v_dados['action_pessoa_gravar'] = $this->permissions->get_url('pessoa_pessoa_gravar');
        $v_dados['action_pessoa_endereco_entrega'] = $this->permissions->get_url('pessoa_pessoa_gravar_entrega');

        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('pessoa_cadastro_view', $v_dados);
    }

    public function gravar() {

        $v_dados = array();
        $entrega = $this->input->post('entrega');
        $cpf = $this->input->post('cpf');
        $email = $this->input->post('email');
        $this->load->library('form_validation');

        $this->form_validation->set_rules('nome', 'lang:lang_title_nome', 'trim|required');
        $this->form_validation->set_rules('referencia', 'lang:lang_title_referencia', 'trim');
        $this->form_validation->set_rules('data', 'lang:lang_title_nascimento', 'trim|required');
        $this->form_validation->set_rules('cpf', 'lang:lang_title_cpf', 'trim|required');
        $this->form_validation->set_rules('email', 'lang:lang_title_email', 'trim|required');
        $this->form_validation->set_rules('telefone', 'lang:lang_title_telefone', 'trim|required');
        $this->form_validation->set_rules('pais', 'lang:lang_title_pais', 'trim|required');
        $this->form_validation->set_rules('cep', 'lang:lang_title_cep', 'trim|required');
        $this->form_validation->set_rules('logradouro', 'lang:lang_title_logradouro', 'trim|required');
        $this->form_validation->set_rules('endereco', 'lang:lang_title_endereco', 'trim|required');
        $this->form_validation->set_rules('numero', 'lang:lang_title_numero', 'trim|required');
        $this->form_validation->set_rules('bairro', 'lang:lang_title_bairro', 'trim|required');
        $this->form_validation->set_rules('cidade', 'lang:lang_title_cidade', 'trim|required');
        $this->form_validation->set_rules('uf', 'lang:lang_title_uf', 'trim|required');

        $id = $this->input->post('id');

        //if ($entrega == false || $entrega == 'false') {
        if(isset($_POST["entrega"])){//$this->input->post('entrega'
            $this->form_validation->set_rules('pais_entrega', 'lang:lang_title_pais', 'trim|required');
            $this->form_validation->set_rules('cep_entrega', 'lang:lang_title_cep', 'trim|required');
            $this->form_validation->set_rules('logradouro_entrega', 'lang:lang_title_logradouro', 'trim|required');
            $this->form_validation->set_rules('endereco_entrega', 'lang:lang_title_endereco', 'trim|required');
            $this->form_validation->set_rules('numero_entrega', 'lang:lang_title_numero', 'trim|required');
            $this->form_validation->set_rules('bairro_entrega', 'lang:lang_title_bairro', 'trim|required');
            $this->form_validation->set_rules('cidade_entrega', 'lang:lang_title_cidade', 'trim|required');
            $this->form_validation->set_rules('uf_entrega', 'lang:lang_title_uf', 'trim|required');
        }

        if ($this->form_validation->run($this) == FALSE) {
            $v_dados['id'] = $id;
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_msg_submit_validation');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            $v_dados['campos'] = $this->form_validation->erros_campos_json();
        } else if (validaCpf($cpf) == FALSE) {
            $v_dados['id'] = $id;
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_cpf_invalido');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            $v_dados['campos'] = $this->form_validation->erros_campos_json();
        } else if ($this->pessoa_model->get_cpf($cpf, $id) != null) {
            $v_dados['id'] = $id;
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_cpf_cadastrado');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            $v_dados['campos'] = $this->form_validation->erros_campos_json();
        } else if ($this->pessoa_model->get_email($email, $id) != null) {
            $v_dados['id'] = $id;
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_email_cadastrado');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            $v_dados['campos'] = $this->form_validation->erros_campos_json();
        } else if ($id == '') {
            $dados = array();
            $dados['status_id'] = $this->input->post('status');
            $dados['nome'] = $this->input->post('nome');
            $dados['referencia'] = $this->input->post('referencia');

            $id = $this->pessoa_model->cadastrar($dados);

            if ($id != null) {
                $fisica = array();
                $fisica['pessoa_id'] = $id;
                $fisica['cpf'] = $cpf;
                $fisica['data_nascimento'] = $this->input->post('data');

                //echo var_dump($fisica['data_nascimento']);
                $this->pessoa_model->cadastrar_p_fisica($fisica);

                $contato = array();
                $contato['pessoa_id'] = $id;
                $contato['email'] = $email;
                $contato['telefone'] = $this->input->post('telefone');

                $this->pessoa_model->cadastrar_p_contato($contato);

                $endereco = array();
                $endereco['pessoa_endereco_tipo_id'] = '1';
                $endereco['pessoa_id'] = $id;
                $endereco['cep'] = $this->input->post('cep');
                $endereco['logradouro'] = $this->input->post('logradouro');
                $endereco['endereco'] = $this->input->post('endereco');
                $endereco['numero'] = $this->input->post('numero');
                $endereco['bairro'] = $this->input->post('bairro');
                $endereco['cidade'] = $this->input->post('cidade');
                $endereco['complemento'] = $this->input->post('complemento');
                $endereco['estado'] = $this->input->post('uf');
                $endereco['pais'] = $this->input->post('pais');

                $this->pessoa_model->cadastrar_p_endereco($endereco);

                //se os dados de entrega nao for o mesmo do cadastro insere o novo endereco de entrega
                //if ($entrega == 'false') {
                if(isset($_POST["entrega"])){
                    $endereco['pessoa_endereco_tipo_id'] = '2';
                    $this->pessoa_model->cadastrar_p_endereco($endereco);
                } else {
                    $entrega = array();
                    $entrega['pessoa_endereco_tipo_id'] = '2';
                    $entrega['pessoa_id'] = $id;
                    $entrega['cep'] = $this->input->post('cep_entrega');
                    $entrega['logradouro'] = $this->input->post('logradouro_entrega');
                    $entrega['endereco'] = $this->input->post('endereco_entrega');
                    $entrega['numero'] = $this->input->post('numero_entrega');
                    $entrega['bairro'] = $this->input->post('bairro_entrega');
                    $entrega['cidade'] = $this->input->post('cidade_entrega');
                    $entrega['complemento'] = $this->input->post('complemento_entrega');
                    $entrega['estado'] = $this->input->post('uf_entrega');
                    $entrega['pais'] = $this->input->post('pais_entrega');

                    $this->pessoa_model->cadastrar_p_endereco($entrega);
                }

                $v_dados['id'] = $id;
                $v_dados['cod'] = 999;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
                $v_dados['header'] = $this->lang->line('lang_header_submit_success');
            } else {
                $v_dados['id'] = $id;
                $v_dados['cod'] = 111;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_warning');
                $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            }
        } else {
            $dados = array();
            $dados['status_id'] = $this->input->post('status');
            $dados['nome'] = $this->input->post('nome');
            $dados['referencia'] = $this->input->post('referencia');
            $this->pessoa_model->alterar($dados, $id);

            $fisica = array();
            $fisica['cpf'] = $cpf;
            $fisica['data_nascimento'] = $this->input->post('data');
            $this->pessoa_model->alterar_p_fisica($fisica, $id);

            $contato = array();
            $contato['email'] = $email;
            $contato['telefone'] = $this->input->post('telefone');
            $this->pessoa_model->alterar_p_contato($contato, $id);

            $endereco = array();
            $endereco['cep'] = $this->input->post('cep');
            $endereco['logradouro'] = $this->input->post('logradouro');
            $endereco['endereco'] = $this->input->post('endereco');
            $endereco['numero'] = $this->input->post('numero');
            $endereco['bairro'] = $this->input->post('bairro');
            $endereco['cidade'] = $this->input->post('cidade');
            $endereco['complemento'] = $this->input->post('complemento');
            $endereco['estado'] = $this->input->post('uf');
            $endereco['pais'] = $this->input->post('pais');
            $this->pessoa_model->alterar_p_endereco($endereco, $id, '1');

            //se os dados de entrega nao for o mesmo do cadastro insere o novo endereco de entrega
            //if ($entrega == 'false') {
            if(isset($_POST["entrega"])){
                $this->pessoa_model->alterar_p_endereco($endereco, $id, '2');
            } else {
                
                $entrega = array();
                $entrega['cep'] = $this->input->post('cep_entrega');
                $entrega['logradouro'] = $this->input->post('logradouro_entrega');
                $entrega['endereco'] = $this->input->post('endereco_entrega');
                $entrega['numero'] = $this->input->post('numero_entrega');
                $entrega['bairro'] = $this->input->post('bairro_entrega');
                $entrega['cidade'] = $this->input->post('cidade_entrega');
                $entrega['complemento'] = $this->input->post('complemento_entrega');
                $entrega['estado'] = $this->input->post('uf_entrega');
                $entrega['pais'] = $this->input->post('pais_entrega');

                $this->pessoa_model->alterar_p_endereco($entrega, $id, '2');
            }

            $v_dados['id'] = $id;
            $v_dados['cod'] = 999;
            $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
            $v_dados['header'] = $this->lang->line('lang_header_submit_success');
        }

        echo json_encode($v_dados);
    }

    public function consultar() {
        $v_dados = array();
        $v_dados['pessoas'] = array();
        $this->load->language('pessoa/pessoa_cadastro_lista');

        $_b_consultar = $this->pessoa_model->consultar_total();

        if ($_b_consultar != null) {
            foreach ($_b_consultar as $k => $v) {
                //$v_dados['lojas'][$k]['id'] = $v->id;
                $v_dados['pessoas'][$k]['status'] = $v->status;
                $v_dados['pessoas'][$k]['nome'] = $v->nome;
                $v_dados['pessoas'][$k]['referencia'] = $v->referencia;
                $v_dados['pessoas'][$k]['cpf'] = $v->cpf;
                $v_dados['pessoas'][$k]['acao'] = anchor(base_cms() . $this->permissions->get_url('pessoa_pessoa_alterar') . '/' . $v->pessoa_id, $this->lang->line('title_acao_alterar'), 'class="btn small"');
            }
        }

        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('pessoa_cadastro_lista_view', $v_dados);
    }

    public function alterar($_id) {
        $b_consultar = $this->pessoa_model->consultar($_id);
        $v_dados = array();

        //endereco cadastro pagamento
        $b_endereco = $this->pessoa_model->consultar_endereco($_id, '1');

        $v_dados['title_acao'] = $this->lang->line('title_acao_alterar');
        $v_dados['title_entrega'] = $this->lang->line('title_acao_entrega');

        //dados
        $v_dados['id'] = $_id;
        $v_dados['status'] = form_dropdown('status', $this->_status(), array($b_consultar->status_id), 'required="required"');
        $v_dados['referencia'] = $b_consultar->referencia;
        $v_dados['nome'] = $b_consultar->nome;
        $v_dados['data'] = $b_consultar->data_nascimento;
        $v_dados['cpf'] = $b_consultar->cpf;
        $v_dados['email'] = $b_consultar->email;
        $v_dados['telefone'] = $b_consultar->telefone;
        $v_dados['pais'] = $b_endereco->pais;
        $v_dados['cep'] = $b_endereco->cep;
        $v_dados['logradouro'] = $b_endereco->logradouro;
        $v_dados['endereco'] = $b_endereco->endereco;
        $v_dados['numero'] = $b_endereco->numero;
        $v_dados['complemento'] = $b_endereco->complemento;
        $v_dados['bairro'] = $b_endereco->bairro;
        $v_dados['cidade'] = $b_endereco->cidade;
        $v_dados['estado'] = $b_endereco->estado;

        //placeholders
        $v_dados['place_referencia'] = '';
        $v_dados['place_nome'] = '';
        $v_dados['place_nascimento'] = '';
        $v_dados['place_cpf'] = '';
        $v_dados['place_email'] = '';
        $v_dados['place_telefone'] = '';
        $v_dados['place_pais'] = '';
        $v_dados['place_cep'] = '';
        $v_dados['place_logradouro'] = '';
        $v_dados['place_endereco'] = '';
        $v_dados['place_numero'] = '';
        $v_dados['place_complemento'] = '';
        $v_dados['place_bairro'] = '';
        $v_dados['place_cidade'] = '';
        $v_dados['place_uf'] = '';

        //endereco cadastro entrega
        $b_endereco = $this->pessoa_model->consultar_endereco($_id, '2');
        if($b_endereco != NULL){
            $v_dados['pais_entrega'] = $b_endereco->pais;
            $v_dados['cep_entrega'] = $b_endereco->cep;
            $v_dados['logradouro_entrega'] = $b_endereco->logradouro;
            $v_dados['endereco_entrega'] = $b_endereco->endereco;
            $v_dados['numero_entrega'] = $b_endereco->numero;
            $v_dados['complemento_entrega'] = $b_endereco->complemento;
            $v_dados['bairro_entrega'] = $b_endereco->bairro;
            $v_dados['cidade_entrega'] = $b_endereco->cidade;
            $v_dados['uf_entrega'] = $b_endereco->estado;
       }else{
           $v_dados['pais_entrega'] = "";
            $v_dados['cep_entrega'] = "";
            $v_dados['logradouro_entrega'] = "";
            $v_dados['endereco_entrega'] = "";
            $v_dados['numero_entrega'] = "";
            $v_dados['complemento_entrega'] = "";
            $v_dados['bairro_entrega'] = "";
            $v_dados['cidade_entrega'] = "";
            $v_dados['uf_entrega'] = "";
           
       }

            $v_dados['action_pessoa_gravar'] = $this->permissions->get_url('pessoa_pessoa_gravar');
            $v_dados['action_pessoa_endereco_entrega'] = $this->permissions->get_url('pessoa_pessoa_gravar_entrega');

        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('pessoa_cadastro_view', $v_dados);
    }

    private function _status() {
        $result = $this->pessoa_model->get_status();
        $dados = array();

        if ($result != null) {
            foreach ($result as $key) {
                $dados[$key->pessoa_status_id] = $key->nome;
            }
        }

        return $dados;
    }

}

?>
